<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>

    </style>
</head>
<body>

</body>
<script>

function fn(a, b){
        // console.log(a, b);
        console.log(this);
        return "hahah"
    }

    // fn("hello","world");

    // var obj = {
    //     name:"obj"
    // }
    // call
    // 功能：改变原函数的this指向，并立即执行改变this指向之后的新函数
    // 参数：
    //     参数1：要改变的this的指向值
    //     参数2~：作为实参传入原函数
    // 返回值：原函数的返回值
    // var res1 = fn.call(123);
    // console.log(res1);
    // var res2 = fn.call("hello");
    // console.log(res2)
    // fn.call(obj);


    // bind
    // 功能：改变原函数的this指向，将返回改变之后的新函数
    // 参数：
        // 参数1：要改变的this的指向值
        // 参数2~：作为实参传入原函数
    // 返回值：改变this指向之后的新函数
    var res1 = fn.bind(123, "q", "w");
    console.log(res1);
    console.log(res1 === fn);
    res1()
    var res2 = fn.bind("hello","a","s");
    console.log(res2)
    res2();
    // fn.bind(obj)();
</script>
</html>